ποΈGitΠ―ΡΠ°ποΈ
docs/en/developer.md ba63f5911a128c8a9bd2a8cdb567a76f09df7e01 (ba63f591) Text, 3.84 KB
title: Developer Guide
layout: default
nav_order: 2
has_children: true
Developer Guide
Technical documentation for contributing to the Meshtastic Android and Desktop app.
Before You Open a PR
Things that trip up first-time contributors β check these before requesting review:
β’ Formatting passes β run T383838./gradlew spotlessApply to auto-format, then verify with T383838spotlessCheck
β’ Detekt passes β run T383838./gradlew detekt and fix all reported issues
β’ All tests pass β run T383838./gradlew test allTests (both are needed: T383838test covers Android-only modules, T383838allTests covers KMP)
β’ Screenshot tests pass β if you touched any Compose UI, run T383838./gradlew :screenshot-tests:validateDebugScreenshotTest and update reference images if needed
β’ Protos are an external dependency β protobuf models come from the T383838org.meshtastic:protobufs Maven artifact (pinned in T383838gradle/libs.versions.toml); change protos upstream and bump the version, never edit generated code locally
β’ Docs updated β if you changed user-visible UI, update the corresponding page under T383838docs/en/user/
β’ Previews updated β if you changed UI composables, update the corresponding T383838*Previews.kt file and the screenshot-test baselines
β’ Branch naming β branches must start with T383838feat/, T383838fix/, T383838chore/, T383838docs/, T383838build/, T383838ci/, T383838refactor/, T383838test/, or T383838deps/
What's New for Developers
<!-- DEVWHATSNEW_START -->
<!-- Add new entries at the top. Format:
Month YYYY β Page or area β One sentence on what changed architecturally or procedurally.
Keep the last 5β8 entries and trim older ones from the bottom.
-->
July 2026 β Test Builds & Obtainium β New page, replacing the root T383838obtainium-test-builds.md. Distributable Obtainium configurations now live in T383838obtainium/ (importable export, one-tap link generator, config-site submission).
July 2026 β Map layer stack (T383838MapLayer.kt, T383838MapLayersManager, GeoJSON/KML import, Site Planner) extracted from the Google flavor into shared T383838androidApp/src/main source (#6148) β F-Droid now renders imported overlays via a new OSMdroid-based renderer, so both flavors compile one implementation.
July 2026 β Persistence β Local Mesh Discovery sessions and cached T383838msh.to device links now persist to Room (T383838DiscoverySessionEntity, T383838DiscoveryPresetResultEntity, T383838DiscoveredNodeEntity, T383838DeviceLinkEntity).
June 2026 β Architecture / Codebase β Protos migrated from the T383838core/proto git submodule to the T383838org.meshtastic:protobufs Maven artifact; there is no longer a local proto module to build or sync.
June 2026 β AIDL/T383838IMeshService removed (#5586). The mesh service is now in-process only, driven entirely through T383838RadioController β no cross-process binder, no T383838aidl stubs.
June 2026 β Testing β Split the screenshot pipeline: the new generate-only T383838:docs-screenshots module holds doc-framed compositions, while T383838:screenshot-tests stays the CI visual-regression gate β so reframing a doc image no longer churns a test baseline.
June 2026 β New feature modules: T383838feature:discovery (mesh network discovery, #5275) and T383838feature:car (Android Auto / Car App Library, google flavor only, #5633).
June 2026 β Testing β Added the T383838:baselineprofile module (#5735): a Macrobenchmark cold-start journey generates a Baseline Profile for T383838:androidApp to AOT-compile hot startup paths.
June 2026 β Persistence β FTS5 full-text message search (#5373): a T383838PacketFts virtual table mirrors T383838Packet.messageText, kept in sync by Room-managed triggers.
<!-- DEVWHATSNEW_END -->
Served by rngit 1.5.0 - Generated in 0.03s